﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Sispe.Entities;
using Sispe.BussinesLogic;
using Microsoft.Practices.Unity;

namespace Sispe.UI
{
    public partial class FrmProyecto : Form
    {
        [Dependency]
        public IProyectoBL proyectoBL { get; set; }

        [Dependency]
        public IUsuarioMenuBL usuMenuBL { get; set; }

        [Dependency]
        public IUsuarioBL usuarioBL { get; set; }

        public FrmProyecto()
        {
            InitializeComponent();
            this.BuildUp();
        }

        public USUARIO currentUsuarioProyecto { get; set; }

        private void FrmProyecto_Load(object sender, EventArgs e)
        {
            if (currentUsuarioProyecto != null)
            {
                menuLlena();
            }
            else
            {
                GBFechas.Visible = false;
                GBCliente.Visible = false;
                GBProyecto.Visible = false;
                GBUbicacion.Visible = false;
                btnBuscar.Visible = false;
                CargarDatos();
            }
        }

        public void menuLlena()
        {
            var datoUsuario = usuMenuBL.GetAllFromUsuarioByPersonaFromLogin(currentUsuarioProyecto.TRABAJADOR.PERSONA.Dni);

            var permiso = (from p in usuMenuBL.GetAllUsuarioMenu(datoUsuario.IdUsuario)
                           select p.MENU.Tag.ToString()).ToArray();

            System.Windows.Forms.Button[] botones = new System.Windows.Forms.Button[]{
            /*this.btnEliminar,*/this.btnEditar,this.btnNuevo};

            var noVisible = from nv in botones
                            where !permiso.Contains(nv.Tag.ToString())
                            select nv;

            noVisible.ToList().ForEach(nv => nv.Enabled = false);

            GBFechas.Visible = false;
            GBCliente.Visible = false;
            GBProyecto.Visible = false;
            GBUbicacion.Visible = false;
            btnBuscar.Visible = false;
            CargarDatos();
        }

        private void CargarDatos()
        {
            pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectos();
        }

        bool isExtend;

        public void Extend()
        {
            isExtend = true;
        }

        public PROYECTO currentProyecto { get; set; }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            if (RBOTodos.Checked)
            {
                Todos();
            }
            if (RBOVigentes.Checked)
            {
                Vigentes();
            }

        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            FrmMttoProyecto frm = new FrmMttoProyecto();
            frm.AddProyecto();
            frm.ShowDialog();
            CargarDatos();
        }

        private void btnEditar_Click(object sender, EventArgs e)
        {
            var updtProyecto = pROYECTOBindingSource.Current as PROYECTO;
            if (updtProyecto != null)
            {
                FrmMttoProyecto frmmttoProy = new FrmMttoProyecto();
                frmmttoProy.UpdateProyecto(updtProyecto.IdProyecto);
                frmmttoProy.ShowDialog();
                CargarDatos();
            }
            else
            {
                MessageBox.Show("Debe Seleccionar un Proyecto", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            var proyecto = pROYECTOBindingSource.Current as PROYECTO;

                if (proyecto != null)
                {
                    var rpt = MessageBox.Show(this,
                       string.Format("¿Desea Eliminar el proyecto: {0}?", proyecto.NombreProyecto),
                       "Mensaje",
                       MessageBoxButtons.YesNo,
                       MessageBoxIcon.Question);

                    if (rpt == DialogResult.Yes)
                    {
                        proyectoBL.DeleteProyecto(proyecto.IdProyecto);
                        CargarDatos();
                    }
                }
                else
                {
                    MessageBox.Show("Debe Seleccionar un Proyecto", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            
           
        }

        private void txtDescripcion_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectosByDescripcion(txtDescripcion.Text);
            }
        }

        private void txtDescripcion_KeyPress(object sender, KeyPressEventArgs e)
        {
            var coma = Convert.ToString(",");
            var punto = Convert.ToString(".");
            var parentesis = Convert.ToString("()");
            var puntoComa = Convert.ToString(";");
            var slash = Convert.ToString("/");

            string cadena = coma + punto + parentesis + puntoComa + slash + (char)8;

            if (Char.IsLetter(e.KeyChar) || cadena.Contains(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        private void RBONombreProy_CheckedChanged(object sender, EventArgs e)
        {
            if (CBNombreProyecto.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBUbicacion.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBFechas.Checked)
            {

                GBFechas.Visible = true;
            }
        }

        private void RBOCliente_CheckedChanged(object sender, EventArgs e)
        {
            if (CBNombreProyecto.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBUbicacion.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBFechas.Checked)
            {

                GBFechas.Visible = true;
            }
        }

        private void RBOUbicacion_CheckedChanged(object sender, EventArgs e)
        {
            if (CBNombreProyecto.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBUbicacion.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBFechas.Checked)
            {

                GBFechas.Visible = true;
            }
        }

        private void btnBuscarCliente_Click(object sender, EventArgs e)
        {
            FrmCliente frmcliente = new FrmCliente();
            frmcliente.Extend();
            frmcliente.ShowDialog();

            if (frmcliente.currentCliente != null)
            {
                txtIdCLiente.Text = Convert.ToString(frmcliente.currentCliente.IdCliente);
                txtDescripcionCliente.Text = frmcliente.currentCliente.RazonSocial;
            }
        }

        private void btnBuscarUbicacion_Click(object sender, EventArgs e)
        {
            FrmUbicacionProyecto frmUbicacionProyecto = new FrmUbicacionProyecto();
            frmUbicacionProyecto.Extend();
            frmUbicacionProyecto.ShowDialog();

            if (frmUbicacionProyecto.CurrentUbicacion != null)
            {
                txtIdUbicacion.Text = Convert.ToString(frmUbicacionProyecto.CurrentUbicacion.IdUbicacion);
                txtDescripcionUbicacion.Text = frmUbicacionProyecto.CurrentUbicacion.Descripcion;
            }
        }

        private void Todos()
        {
            if (CBNombreProyecto.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectosByDescripcion(txtDescripcion.Text);
            }
            if (CBCliente.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllProyectosByCliente(txtDescripcionCliente.Text);
            }
            if (CBUbicacion.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllProyectosByUbicacion(txtDescripcionUbicacion.Text);
            }
            if (CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectosByFecha(dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectoByNombreByCliente(txtDescripcion.Text, txtDescripcionCliente.Text);
            }
            if (CBNombreProyecto.Checked && CBUbicacion.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectoByNombreByUbicacion(txtDescripcion.Text, txtDescripcionUbicacion.Text);
            }
            if (CBNombreProyecto.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectosByDescripcionByFecha(txtDescripcion.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBCliente.Checked && CBUbicacion.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectosByCLienteByUbicacion(txtDescripcionCliente.Text, txtDescripcionUbicacion.Text);
            }
            if (CBCliente.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllProyectosByClienteByFecha(txtDescripcionCliente.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBUbicacion.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllProyectosByUbicacionByFecha(txtDescripcionUbicacion.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBUbicacion.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectoByNombreByClienteBYUbicacion(txtDescripcion.Text, txtDescripcionCliente.Text, txtDescripcionUbicacion.Text);
            }
            if (CBCliente.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectosByCLienteByUbicacionByFecha(txtDescripcionCliente.Text, txtDescripcionUbicacion.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectoByNombreByClienteByFecha(txtDescripcion.Text, txtDescripcionCliente.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBNombreProyecto.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectoByNombreByUbicacionByFecha(txtDescripcion.Text, txtDescripcionUbicacion.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectoByNombreByClienteBYUbicacionByFecha(txtDescripcion.Text, txtDescripcionCliente.Text, txtDescripcionUbicacion.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
        }

        private void Vigentes()
        {
            if (CBNombreProyecto.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectoVigentessByDescripcion(txtDescripcion.Text);
            }
            if (CBCliente.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllProyectosVigentesByCliente(txtDescripcionCliente.Text);
            }
            if (CBUbicacion.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllProyectosVigentesByUbicacion(txtDescripcionUbicacion.Text);
            }
            if (CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllProyectosVigentesByFecha(dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectosVigentesByNombreByCliente(txtDescripcion.Text, txtDescripcionCliente.Text);
            }
            if (CBNombreProyecto.Checked && CBUbicacion.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectosVigentesByNombreByUbicacion(txtDescripcion.Text, txtDescripcionUbicacion.Text);
            }
            if (CBNombreProyecto.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectoVigentessByDescripcionByFecha(txtDescripcion.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBCliente.Checked && CBUbicacion.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectosVigentesByCLienteByUbicacion(txtDescripcionCliente.Text, txtDescripcionUbicacion.Text);
            }
            if (CBCliente.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllProyectosVigentesByClienteByFecha(txtDescripcionCliente.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBUbicacion.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllProyectosVigentesByUbicacionByFecha(txtDescripcionUbicacion.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBUbicacion.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectsVigentesoByNombreByClienteBYUbicacion(txtDescripcion.Text, txtDescripcionCliente.Text, txtDescripcionUbicacion.Text);
            }
            if (CBCliente.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectosVigentesByCLienteByUbicacionByFecha(txtDescripcionCliente.Text, txtDescripcionUbicacion.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectosVigentesByNombreByClienteByFecha(txtDescripcion.Text, txtDescripcionCliente.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBNombreProyecto.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectosVigentesByNombreByUbicacionByFecha(txtDescripcion.Text, txtDescripcionUbicacion.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllFromProyectosVigentesByNombreByClienteBYUbicacionByFecha(txtDescripcion.Text, txtDescripcionCliente.Text, txtDescripcionUbicacion.Text, dtpFecIni.Value.Date, dtpFecFin.Value.Date);
            }
        }

        private void RBOTodos_CheckedChanged(object sender, EventArgs e)
        {
            if (RBOTodos.Checked)
            {
                CargarDatos();
            }
            if (RBOVigentes.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllProyectosVigentes();
            }
        }

        private void RBOVigentes_CheckedChanged(object sender, EventArgs e)
        {
            if (RBOTodos.Checked)
            {
                CargarDatos();
            }
            if (RBOVigentes.Checked)
            {
                pROYECTOBindingSource.DataSource = proyectoBL.GetAllProyectosVigentes();
            }
        }
        
        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (CBNombreProyecto.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBUbicacion.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }


            if (CBNombreProyecto.Checked && CBCliente.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;

            }
            if (CBNombreProyecto.Checked && CBUbicacion.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBNombreProyecto.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBCliente.Checked && CBUbicacion.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBUbicacion.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
        }

        private void CBNombreProyecto_CheckedChanged(object sender, EventArgs e)
        {
            if (CBNombreProyecto.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBUbicacion.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;

            }
            if (CBNombreProyecto.Checked && CBUbicacion.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBNombreProyecto.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBCliente.Checked && CBUbicacion.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBUbicacion.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
        }
        
        private void CBCliente_CheckedChanged(object sender, EventArgs e)
        {
            if (CBNombreProyecto.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBUbicacion.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;

            }
            if (CBNombreProyecto.Checked && CBUbicacion.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBNombreProyecto.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBCliente.Checked && CBUbicacion.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBUbicacion.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
        }

        private void CBUbicacion_CheckedChanged(object sender, EventArgs e)
        {
            if (CBNombreProyecto.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBUbicacion.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;

            }
            if (CBNombreProyecto.Checked && CBUbicacion.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBNombreProyecto.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBCliente.Checked && CBUbicacion.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBUbicacion.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = false;
            }
            if (CBCliente.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = false;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = false;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = false;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
            if (CBNombreProyecto.Checked && CBCliente.Checked && CBUbicacion.Checked && CBFechas.Checked)
            {
                GBCliente.Visible = true;
                GBUbicacion.Visible = true;
                GBProyecto.Visible = true;
                btnBuscar.Visible = true;
                GBFechas.Visible = true;
            }
        }

        private void radGridView1_CurrentCellChanged(object sender, Telerik.WinControls.UI.CurrentCellChangedEventArgs e)
        {
            var proyec = pROYECTOBindingSource.Current as PROYECTO;

            var codigo = radGridView1.Rows[0].Cells[0].Value;
            var listnom = "";
            var listTel = "";
            var listEmail = "";
            lbContactos.Items.Clear();
            if (codigo != null)
            {
                foreach (var item in proyec.PROYECTO_CONTACTO)
                {
                    listnom = "Nombre: " + item.CONTACTO_PROYECTO.Nombre.ToString();
                    lbContactos.Items.Add(listnom);
                    listTel = "Tel.: " + item.CONTACTO_PROYECTO.Telefono.ToString();
                    lbContactos.Items.Add(listTel);
                    listEmail = "Email: " + item.CONTACTO_PROYECTO.Email.ToString();
                    lbContactos.Items.Add(listEmail);
                    var linea = "\n";
                    lbContactos.Items.Add(linea);

                }
            }
        }

        private void radGridView1_DoubleClick(object sender, EventArgs e)
        {
            if (isExtend == true)
            {
                currentProyecto = pROYECTOBindingSource.Current as PROYECTO;
                this.Close();
            }
        }

        private void radGridView1_CellDoubleClick(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e)
        {
            if (isExtend == true)
            {
                currentProyecto = pROYECTOBindingSource.Current as PROYECTO;
                this.Close();
            }
        }


        private void radGridView1_CellClick(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e)
        {
            PROYECTO currentProyecto = pROYECTOBindingSource.Current as PROYECTO;
            if (this.radGridView1.Columns[e.ColumnIndex].Name.Equals("Adenda"))
            {
                FrmMttoAdenda frm = new FrmMttoAdenda();
                frm._currentProyect = currentProyecto;
                frm.cargarProyecto();
                frm.ShowDialog();
                CargarDatos();
            }
            if (this.radGridView1.Columns[e.ColumnIndex].Name.Equals("btnVerAdenda"))
            {
                FrmAdenda frm = new FrmAdenda();
                frm.ObtenerId(currentProyecto.CodigoProyecto);
                frm.ShowDialog();
            }
        }

        private void pROYECTODataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
           
        }

        private void btnHorarioProyecto_Click(object sender, EventArgs e)
        {
            var _current = pROYECTOBindingSource.Current as PROYECTO;

            var horario = proyectoBL.GetFromHorarioByIdProyecto(_current.IdProyecto);

            if (_current != null)
            {
                var frm = new FrmMttoHorarioProyecto();
                frm.IdProyecto = _current.IdProyecto;
                if (horario != null)
                {
                    
                    frm.Editar();
                    frm.ShowDialog();
                }
                else
                {
                    frm.Nuevo();
                    frm.ShowDialog();
                }
                CargarDatos();
            }
        }

        private void btnReporteProyPersonal_Click(object sender, EventArgs e)
        {
            var _current = pROYECTOBindingSource.Current as PROYECTO;
            if (_current != null)
            {
                var usuario = usuarioBL.GetFromUsuarioByIdTrabajador(currentUsuarioProyecto.TRABAJADOR.PERSONA.IdPersona);
                if (usuario != null)
                {
                    if (usuario.IdRol == 4 || usuario.IdRol == 6)
                    {
                        var frm = new ReportesCeyca.FrmProyectoPersonal();
                        frm.IdProyecto = _current.IdProyecto;
                        frm.ShowDialog();
                    }
                    else
                    {
                        MessageBox.Show("Usted no está autorizado para realizar esta operación", "ERROR",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show("Usuario no registrado", "ERROR",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

        private void btnReporteProyPersonalVigente_Click(object sender, EventArgs e)
        {
            var _current = pROYECTOBindingSource.Current as PROYECTO;
            if (_current != null)
            {
                var usuario = usuarioBL.GetFromUsuarioByIdTrabajador(currentUsuarioProyecto.TRABAJADOR.PERSONA.IdPersona);
                if (usuario != null)
                {
                    if (usuario.IdRol == 4 || usuario.IdRol == 6)
                    {
                        var frm = new ReportesCeyca.FrmProyectoPersonalVigente();
                        frm.IdProyecto = _current.IdProyecto;
                        frm.ShowDialog();
                    }
                    else
                    {
                        MessageBox.Show("Usted no está autorizado para realizar esta operación", "ERROR",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show("Usuario no registrado", "ERROR",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
    }
}
